The present invention relates to augmenting a software module test suite, which includes providing a test suite including a plurality of test cases for a software module programmed to implement a function converting an N-dimensional input space into an output space, wherein N is an integer of at least 2, the plurality covering a first portion of the N-dimensional input space.
Today, society is heavily dependent on computing devices performing a wide range of tasks to aid society. The tasks can range, for instance, from service provisioning, for example, over the Internet, to controlling machinery or the like. It is therefore important that the software implementing the desired functionality executes in an intended manner. As the functionality to be implemented becomes more complex, however, there is an increased risk that the software may contain one or more errors, for example, because the developer may have worked on several versions of the software over a prolonged period of time. This can lead to the software producing unintended or erroneous results. This is of course unwanted, and may even jeopardize the safety or security of users relying on the software to exhibit the intended functionality when executed.
Software test design is concerned with the task of finding a suite of test cases that is able to identify as many errors in the software as possible, such that the test suite, that is, the suite of test cases, can be used to determine to a satisfactory level of certainty that the software under test performs as intended and/or to identify errors in the software that can be corrected. A test case consists of a description of input data, as well as expected output data.
As the set of all possible test cases is large or even infinite for complex software, a test suite can contain only a fraction of all the possible test cases. Therefore, a balanced selection of test cases is paramount; a well-chosen test suite will be able to reveal many errors whereas an arbitrarily chosen test suite may miss many errors.